# -*- coding: utf-8 -*-
#### 数据库处理函数 ####
# 依赖于 pymongo 库
# 作者：Ekaros
# 版本：1.2
# 2025.01.22 v1.0 初始版本(insert_data_to_mongodb)
# 2025.01.23 v1.1 增加 get_shaidan_data_from_mongodb 函数，用于从数据库获取晒单数据
# 2025.01.24 v1.2 增加 get_jiutian_data_from_mongodb 函数，用于从数据库获取九天平台应用的appid等数据




from pymongo import MongoClient


# 将数据插入指定数据库
def insert_data_to_mongodb(mongo_url:str, database_name:str, collection_name:str, data:dict):
    # 连接 MongoDB 数据库
    client = MongoClient(mongo_url)
    db = client[database_name]
    insert_collection = db[collection_name]

    # 插入数据到集合中
    insert_result = insert_collection.insert_one(data)

# 检查插入结果
    if insert_result.acknowledged:
        print("晒单数据插入成功！")
        print("插入的数据 ID：", insert_result.inserted_id)
    else:
        print("数据插入失败！")

    client.close()

# 从指定数据库获取晒单数据
def get_shaidan_data_from_mongodb(mongo_url:str, database_name:str, collection_name:str, target_date:str):
    # 连接 MongoDB 数据库
    client = MongoClient(mongo_url)
    db = client[database_name]
    collection = db[collection_name]

    # 构建查询条件
    query = {
        '时间': target_date 
    }

    data = []
    for document in collection.find(query):
        data.append({
            '战队': document.get('战队', ''),
            '业务': document.get('业务', []),
            '号码': document.get('号码', ''),
            '发展人': document.get('发展人', ''),
            '是否完美一单': document.get('是否完美一单', ''),
            '时间': document.get('时间', '')
        })

    print(data)
    client.close()
    return data

def get_jiutian_data_from_mongodb(mongo_url:str, database_name:str, collection_name:str, target_name:str):
    # 连接 MongoDB 数据库
    client = MongoClient(mongo_url)
    db = client[database_name]
    collection = db[collection_name]

    # 构建查询条件
    query = {
        'appName': target_name
    }

    # 执行查询
    result = collection.find(query)
    for document in result:
        app = {
            'appName': document['appName'],
            'appId': document['appId'],
            'APIKey': document['APIKey'],
            'url': document['url']
        }

    print(app)
    client.close()
    return app



if __name__ == '__main__':
    # 连接 MongoDB 数据库的 URL
    mongo_url = 'mongodb://localhost:27017/'

    # 要插入数据的数据库名称
    database_name = 'RPA'

    # 要插入的集合名称
    collection_name = 'shaidan_shuju'

    # 测试数据
    msg = {
        '战队': '大姚直销战队',
         '业务': ['新入网', '10分满意', '和彩云', '宽带', '机顶盒', '移动APP', '视频彩铃'],
         '号码': '8089',
         '发展人': '毛丽梅',
         '是否完美一单': '是',
         '时间': '2025-01-23'
         }
    
    jiutian_msg = {
        "appName": "楚移小助手",
        "appId": "678c909cfda37e252f26b79e",
        "APIKey": "678dad5afda37e252f2bc900.NLppcJ8w46a8SRTEsYf6wFtxhO8WQEtK",
        "url": "https://jiutian.10086.cn/largemodel/api/v2/completions"
        }


    # 指定日期范围
    target_date = '2025-01-23'

    # 插入数据到 MongoDB
    insert_data_to_mongodb(mongo_url, database_name, collection_name, msg)
    insert_data_to_mongodb(mongo_url, database_name, '九天智能体', jiutian_msg)

    # 从 MongoDB 获取数据
    # get_shaidan_data_from_mongodb(mongo_url, database_name, collection_name, target_date)
    jiutian = get_jiutian_data_from_mongodb(mongo_url, database_name, '九天智能体', '楚移小助手')